// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly

#![allow(missing_docs, non_upper_case_globals, non_snake_case)]

/// The version of [Unicode](http://www.unicode.org/)
/// that this version of unicode-xid is based on.
pub const UNICODE_VERSION: (u64, u64, u64) = (13, 0, 0);

fn bsearch_range_table(c: char, r: &[(char, char)]) -> bool {
    use core::cmp::Ordering::{Equal, Greater, Less};

    r.binary_search_by(|&(lo, hi)| {
        // Because ASCII ranges are at the start of the tables, a search for an
        // ASCII char will involve more `Greater` results (i.e. the `(lo,hi)`
        // table entry is greater than `c`) than `Less` results. And given that
        // ASCII chars are so common, it makes sense to favor them. Therefore,
        // the `Greater` case is tested for before the `Less` case.
        if lo > c {
            Greater
        } else if hi < c {
            Less
        } else {
            Equal
        }
    })
    .is_ok()
}

pub mod derived_property {
    pub const XID_Continue_table: &[(char, char)] = &[
        ('\u{30}', '\u{39}'),
        ('\u{41}', '\u{5a}'),
        ('\u{5f}', '\u{5f}'),
        ('\u{61}', '\u{7a}'),
        ('\u{aa}', '\u{aa}'),
        ('\u{b5}', '\u{b5}'),
        ('\u{b7}', '\u{b7}'),
        ('\u{ba}', '\u{ba}'),
        ('\u{c0}', '\u{d6}'),
        ('\u{d8}', '\u{f6}'),
        ('\u{f8}', '\u{2c1}'),
        ('\u{2c6}', '\u{2d1}'),
        ('\u{2e0}', '\u{2e4}'),
        ('\u{2ec}', '\u{2ec}'),
        ('\u{2ee}', '\u{2ee}'),
        ('\u{300}', '\u{374}'),
        ('\u{376}', '\u{377}'),
        ('\u{37b}', '\u{37d}'),
        ('\u{37f}', '\u{37f}'),
        ('\u{386}', '\u{38a}'),
        ('\u{38c}', '\u{38c}'),
        ('\u{38e}', '\u{3a1}'),
        ('\u{3a3}', '\u{3f5}'),
        ('\u{3f7}', '\u{481}'),
        ('\u{483}', '\u{487}'),
        ('\u{48a}', '\u{52f}'),
        ('\u{531}', '\u{556}'),
        ('\u{559}', '\u{559}'),
        ('\u{560}', '\u{588}'),
        ('\u{591}', '\u{5bd}'),
        ('\u{5bf}', '\u{5bf}'),
        ('\u{5c1}', '\u{5c2}'),
        ('\u{5c4}', '\u{5c5}'),
        ('\u{5c7}', '\u{5c7}'),
        ('\u{5d0}', '\u{5ea}'),
        ('\u{5ef}', '\u{5f2}'),
        ('\u{610}', '\u{61a}'),
        ('\u{620}', '\u{669}'),
        ('\u{66e}', '\u{6d3}'),
        ('\u{6d5}', '\u{6dc}'),
        ('\u{6df}', '\u{6e8}'),
        ('\u{6ea}', '\u{6fc}'),
        ('\u{6ff}', '\u{6ff}'),
        ('\u{710}', '\u{74a}'),
        ('\u{74d}', '\u{7b1}'),
        ('\u{7c0}', '\u{7f5}'),
        ('\u{7fa}', '\u{7fa}'),
        ('\u{7fd}', '\u{7fd}'),
        ('\u{800}', '\u{82d}'),
        ('\u{840}', '\u{85b}'),
        ('\u{860}', '\u{86a}'),
        ('\u{8a0}', '\u{8b4}'),
        ('\u{8b6}', '\u{8c7}'),
        ('\u{8d3}', '\u{8e1}'),
        ('\u{8e3}', '\u{963}'),
        ('\u{966}', '\u{96f}'),
        ('\u{971}', '\u{983}'),
        ('\u{985}', '\u{98c}'),
        ('\u{98f}', '\u{990}'),
        ('\u{993}', '\u{9a8}'),
        ('\u{9aa}', '\u{9b0}'),
        ('\u{9b2}', '\u{9b2}'),
        ('\u{9b6}', '\u{9b9}'),
        ('\u{9bc}', '\u{9c4}'),
        ('\u{9c7}', '\u{9c8}'),
        ('\u{9cb}', '\u{9ce}'),
        ('\u{9d7}', '\u{9d7}'),
        ('\u{9dc}', '\u{9dd}'),
        ('\u{9df}', '\u{9e3}'),
        ('\u{9e6}', '\u{9f1}'),
        ('\u{9fc}', '\u{9fc}'),
        ('\u{9fe}', '\u{9fe}'),
        ('\u{a01}', '\u{a03}'),
        ('\u{a05}', '\u{a0a}'),
        ('\u{a0f}', '\u{a10}'),
        ('\u{a13}', '\u{a28}'),
        ('\u{a2a}', '\u{a30}'),
        ('\u{a32}', '\u{a33}'),
        ('\u{a35}', '\u{a36}'),
        ('\u{a38}', '\u{a39}'),
        ('\u{a3c}', '\u{a3c}'),
        ('\u{a3e}', '\u{a42}'),
        ('\u{a47}', '\u{a48}'),
        ('\u{a4b}', '\u{a4d}'),
        ('\u{a51}', '\u{a51}'),
        ('\u{a59}', '\u{a5c}'),
        ('\u{a5e}', '\u{a5e}'),
        ('\u{a66}', '\u{a75}'),
        ('\u{a81}', '\u{a83}'),
        ('\u{a85}', '\u{a8d}'),
        ('\u{a8f}', '\u{a91}'),
        ('\u{a93}', '\u{aa8}'),
        ('\u{aaa}', '\u{ab0}'),
        ('\u{ab2}', '\u{ab3}'),
        ('\u{ab5}', '\u{ab9}'),
        ('\u{abc}', '\u{ac5}'),
        ('\u{ac7}', '\u{ac9}'),
        ('\u{acb}', '\u{acd}'),
        ('\u{ad0}', '\u{ad0}'),
        ('\u{ae0}', '\u{ae3}'),
        ('\u{ae6}', '\u{aef}'),
        ('\u{af9}', '\u{aff}'),
        ('\u{b01}', '\u{b03}'),
        ('\u{b05}', '\u{b0c}'),
        ('\u{b0f}', '\u{b10}'),
        ('\u{b13}', '\u{b28}'),
        ('\u{b2a}', '\u{b30}'),
        ('\u{b32}', '\u{b33}'),
        ('\u{b35}', '\u{b39}'),
        ('\u{b3c}', '\u{b44}'),
        ('\u{b47}', '\u{b48}'),
        ('\u{b4b}', '\u{b4d}'),
        ('\u{b55}', '\u{b57}'),
        ('\u{b5c}', '\u{b5d}'),
        ('\u{b5f}', '\u{b63}'),
        ('\u{b66}', '\u{b6f}'),
        ('\u{b71}', '\u{b71}'),
        ('\u{b82}', '\u{b83}'),
        ('\u{b85}', '\u{b8a}'),
        ('\u{b8e}', '\u{b90}'),
        ('\u{b92}', '\u{b95}'),
        ('\u{b99}', '\u{b9a}'),
        ('\u{b9c}', '\u{b9c}'),
        ('\u{b9e}', '\u{b9f}'),
        ('\u{ba3}', '\u{ba4}'),
        ('\u{ba8}', '\u{baa}'),
        ('\u{bae}', '\u{bb9}'),
        ('\u{bbe}', '\u{bc2}'),
        ('\u{bc6}', '\u{bc8}'),
        ('\u{bca}', '\u{bcd}'),
        ('\u{bd0}', '\u{bd0}'),
        ('\u{bd7}', '\u{bd7}'),
        ('\u{be6}', '\u{bef}'),
        ('\u{c00}', '\u{c0c}'),
        ('\u{c0e}', '\u{c10}'),
        ('\u{c12}', '\u{c28}'),
        ('\u{c2a}', '\u{c39}'),
        ('\u{c3d}', '\u{c44}'),
        ('\u{c46}', '\u{c48}'),
        ('\u{c4a}', '\u{c4d}'),
        ('\u{c55}', '\u{c56}'),
        ('\u{c58}', '\u{c5a}'),
        ('\u{c60}', '\u{c63}'),
        ('\u{c66}', '\u{c6f}'),
        ('\u{c80}', '\u{c83}'),
        ('\u{c85}', '\u{c8c}'),
        ('\u{c8e}', '\u{c90}'),
        ('\u{c92}', '\u{ca8}'),
        ('\u{caa}', '\u{cb3}'),
        ('\u{cb5}', '\u{cb9}'),
        ('\u{cbc}', '\u{cc4}'),
        ('\u{cc6}', '\u{cc8}'),
        ('\u{cca}', '\u{ccd}'),
        ('\u{cd5}', '\u{cd6}'),
        ('\u{cde}', '\u{cde}'),
        ('\u{ce0}', '\u{ce3}'),
        ('\u{ce6}', '\u{cef}'),
        ('\u{cf1}', '\u{cf2}'),
        ('\u{d00}', '\u{d0c}'),
        ('\u{d0e}', '\u{d10}'),
        ('\u{d12}', '\u{d44}'),
        ('\u{d46}', '\u{d48}'),
        ('\u{d4a}', '\u{d4e}'),
        ('\u{d54}', '\u{d57}'),
        ('\u{d5f}', '\u{d63}'),
        ('\u{d66}', '\u{d6f}'),
        ('\u{d7a}', '\u{d7f}'),
        ('\u{d81}', '\u{d83}'),
        ('\u{d85}', '\u{d96}'),
        ('\u{d9a}', '\u{db1}'),
        ('\u{db3}', '\u{dbb}'),
        ('\u{dbd}', '\u{dbd}'),
        ('\u{dc0}', '\u{dc6}'),
        ('\u{dca}', '\u{dca}'),
        ('\u{dcf}', '\u{dd4}'),
        ('\u{dd6}', '\u{dd6}'),
        ('\u{dd8}', '\u{ddf}'),
        ('\u{de6}', '\u{def}'),
        ('\u{df2}', '\u{df3}'),
        ('\u{e01}', '\u{e3a}'),
        ('\u{e40}', '\u{e4e}'),
        ('\u{e50}', '\u{e59}'),
        ('\u{e81}', '\u{e82}'),
        ('\u{e84}', '\u{e84}'),
        ('\u{e86}', '\u{e8a}'),
        ('\u{e8c}', '\u{ea3}'),
        ('\u{ea5}', '\u{ea5}'),
        ('\u{ea7}', '\u{ebd}'),
        ('\u{ec0}', '\u{ec4}'),
        ('\u{ec6}', '\u{ec6}'),
        ('\u{ec8}', '\u{ecd}'),
        ('\u{ed0}', '\u{ed9}'),
        ('\u{edc}', '\u{edf}'),
        ('\u{f00}', '\u{f00}'),
        ('\u{f18}', '\u{f19}'),
        ('\u{f20}', '\u{f29}'),
        ('\u{f35}', '\u{f35}'),
        ('\u{f37}', '\u{f37}'),
        ('\u{f39}', '\u{f39}'),
        ('\u{f3e}', '\u{f47}'),
        ('\u{f49}', '\u{f6c}'),
        ('\u{f71}', '\u{f84}'),
        ('\u{f86}', '\u{f97}'),
        ('\u{f99}', '\u{fbc}'),
        ('\u{fc6}', '\u{fc6}'),
        ('\u{1000}', '\u{1049}'),
        ('\u{1050}', '\u{109d}'),
        ('\u{10a0}', '\u{10c5}'),
        ('\u{10c7}', '\u{10c7}'),
        ('\u{10cd}', '\u{10cd}'),
        ('\u{10d0}', '\u{10fa}'),
        ('\u{10fc}', '\u{1248}'),
        ('\u{124a}', '\u{124d}'),
        ('\u{1250}', '\u{1256}'),
        ('\u{1258}', '\u{1258}'),
        ('\u{125a}', '\u{125d}'),
        ('\u{1260}', '\u{1288}'),
        ('\u{128a}', '\u{128d}'),
        ('\u{1290}', '\u{12b0}'),
        ('\u{12b2}', '\u{12b5}'),
        ('\u{12b8}', '\u{12be}'),
        ('\u{12c0}', '\u{12c0}'),
        ('\u{12c2}', '\u{12c5}'),
        ('\u{12c8}', '\u{12d6}'),
        ('\u{12d8}', '\u{1310}'),
        ('\u{1312}', '\u{1315}'),
        ('\u{1318}', '\u{135a}'),
        ('\u{135d}', '\u{135f}'),
        ('\u{1369}', '\u{1371}'),
        ('\u{1380}', '\u{138f}'),
        ('\u{13a0}', '\u{13f5}'),
        ('\u{13f8}', '\u{13fd}'),
        ('\u{1401}', '\u{166c}'),
        ('\u{166f}', '\u{167f}'),
        ('\u{1681}', '\u{169a}'),
        ('\u{16a0}', '\u{16ea}'),
        ('\u{16ee}', '\u{16f8}'),
        ('\u{1700}', '\u{170c}'),
        ('\u{170e}', '\u{1714}'),
        ('\u{1720}', '\u{1734}'),
        ('\u{1740}', '\u{1753}'),
        ('\u{1760}', '\u{176c}'),
        ('\u{176e}', '\u{1770}'),
        ('\u{1772}', '\u{1773}'),
        ('\u{1780}', '\u{17d3}'),
        ('\u{17d7}', '\u{17d7}'),
        ('\u{17dc}', '\u{17dd}'),
        ('\u{17e0}', '\u{17e9}'),
        ('\u{180b}', '\u{180d}'),
        ('\u{1810}', '\u{1819}'),
        ('\u{1820}', '\u{1878}'),
        ('\u{1880}', '\u{18aa}'),
        ('\u{18b0}', '\u{18f5}'),
        ('\u{1900}', '\u{191e}'),
        ('\u{1920}', '\u{192b}'),
        ('\u{1930}', '\u{193b}'),
        ('\u{1946}', '\u{196d}'),
        ('\u{1970}', '\u{1974}'),
        ('\u{1980}', '\u{19ab}'),
        ('\u{19b0}', '\u{19c9}'),
        ('\u{19d0}', '\u{19da}'),
        ('\u{1a00}', '\u{1a1b}'),
        ('\u{1a20}', '\u{1a5e}'),
        ('\u{1a60}', '\u{1a7c}'),
        ('\u{1a7f}', '\u{1a89}'),
        ('\u{1a90}', '\u{1a99}'),
        ('\u{1aa7}', '\u{1aa7}'),
        ('\u{1ab0}', '\u{1abd}'),
        ('\u{1abf}', '\u{1ac0}'),
        ('\u{1b00}', '\u{1b4b}'),
        ('\u{1b50}', '\u{1b59}'),
        ('\u{1b6b}', '\u{1b73}'),
        ('\u{1b80}', '\u{1bf3}'),
        ('\u{1c00}', '\u{1c37}'),
        ('\u{1c40}', '\u{1c49}'),
        ('\u{1c4d}', '\u{1c7d}'),
        ('\u{1c80}', '\u{1c88}'),
        ('\u{1c90}', '\u{1cba}'),
        ('\u{1cbd}', '\u{1cbf}'),
        ('\u{1cd0}', '\u{1cd2}'),
        ('\u{1cd4}', '\u{1cfa}'),
        ('\u{1d00}', '\u{1df9}'),
        ('\u{1dfb}', '\u{1f15}'),
        ('\u{1f18}', '\u{1f1d}'),
        ('\u{1f20}', '\u{1f45}'),
        ('\u{1f48}', '\u{1f4d}'),
        ('\u{1f50}', '\u{1f57}'),
        ('\u{1f59}', '\u{1f59}'),
        ('\u{1f5b}', '\u{1f5b}'),
        ('\u{1f5d}', '\u{1f5d}'),
        ('\u{1f5f}', '\u{1f7d}'),
        ('\u{1f80}', '\u{1fb4}'),
        ('\u{1fb6}', '\u{1fbc}'),
        ('\u{1fbe}', '\u{1fbe}'),
        ('\u{1fc2}', '\u{1fc4}'),
        ('\u{1fc6}', '\u{1fcc}'),
        ('\u{1fd0}', '\u{1fd3}'),
        ('\u{1fd6}', '\u{1fdb}'),
        ('\u{1fe0}', '\u{1fec}'),
        ('\u{1ff2}', '\u{1ff4}'),
        ('\u{1ff6}', '\u{1ffc}'),
        ('\u{203f}', '\u{2040}'),
        ('\u{2054}', '\u{2054}'),
        ('\u{2071}', '\u{2071}'),
        ('\u{207f}', '\u{207f}'),
        ('\u{2090}', '\u{209c}'),
        ('\u{20d0}', '\u{20dc}'),
        ('\u{20e1}', '\u{20e1}'),
        ('\u{20e5}', '\u{20f0}'),
        ('\u{2102}', '\u{2102}'),
        ('\u{2107}', '\u{2107}'),
        ('\u{210a}', '\u{2113}'),
        ('\u{2115}', '\u{2115}'),
        ('\u{2118}', '\u{211d}'),
        ('\u{2124}', '\u{2124}'),
        ('\u{2126}', '\u{2126}'),
        ('\u{2128}', '\u{2128}'),
        ('\u{212a}', '\u{2139}'),
        ('\u{213c}', '\u{213f}'),
        ('\u{2145}', '\u{2149}'),
        ('\u{214e}', '\u{214e}'),
        ('\u{2160}', '\u{2188}'),
        ('\u{2c00}', '\u{2c2e}'),
        ('\u{2c30}', '\u{2c5e}'),
        ('\u{2c60}', '\u{2ce4}'),
        ('\u{2ceb}', '\u{2cf3}'),
        ('\u{2d00}', '\u{2d25}'),
        ('\u{2d27}', '\u{2d27}'),
        ('\u{2d2d}', '\u{2d2d}'),
        ('\u{2d30}', '\u{2d67}'),
        ('\u{2d6f}', '\u{2d6f}'),
        ('\u{2d7f}', '\u{2d96}'),
        ('\u{2da0}', '\u{2da6}'),
        ('\u{2da8}', '\u{2dae}'),
        ('\u{2db0}', '\u{2db6}'),
        ('\u{2db8}', '\u{2dbe}'),
        ('\u{2dc0}', '\u{2dc6}'),
        ('\u{2dc8}', '\u{2dce}'),
        ('\u{2dd0}', '\u{2dd6}'),
        ('\u{2dd8}', '\u{2dde}'),
        ('\u{2de0}', '\u{2dff}'),
        ('\u{3005}', '\u{3007}'),
        ('\u{3021}', '\u{302f}'),
        ('\u{3031}', '\u{3035}'),
        ('\u{3038}', '\u{303c}'),
        ('\u{3041}', '\u{3096}'),
        ('\u{3099}', '\u{309a}'),
        ('\u{309d}', '\u{309f}'),
        ('\u{30a1}', '\u{30fa}'),
        ('\u{30fc}', '\u{30ff}'),
        ('\u{3105}', '\u{312f}'),
        ('\u{3131}', '\u{318e}'),
        ('\u{31a0}', '\u{31bf}'),
        ('\u{31f0}', '\u{31ff}'),
        ('\u{3400}', '\u{4dbf}'),
        ('\u{4e00}', '\u{9ffc}'),
        ('\u{a000}', '\u{a48c}'),
        ('\u{a4d0}', '\u{a4fd}'),
        ('\u{a500}', '\u{a60c}'),
        ('\u{a610}', '\u{a62b}'),
        ('\u{a640}', '\u{a66f}'),
        ('\u{a674}', '\u{a67d}'),
        ('\u{a67f}', '\u{a6f1}'),
        ('\u{a717}', '\u{a71f}'),
        ('\u{a722}', '\u{a788}'),
        ('\u{a78b}', '\u{a7bf}'),
        ('\u{a7c2}', '\u{a7ca}'),
        ('\u{a7f5}', '\u{a827}'),
        ('\u{a82c}', '\u{a82c}'),
        ('\u{a840}', '\u{a873}'),
        ('\u{a880}', '\u{a8c5}'),
        ('\u{a8d0}', '\u{a8d9}'),
        ('\u{a8e0}', '\u{a8f7}'),
        ('\u{a8fb}', '\u{a8fb}'),
        ('\u{a8fd}', '\u{a92d}'),
        ('\u{a930}', '\u{a953}'),
        ('\u{a960}', '\u{a97c}'),
        ('\u{a980}', '\u{a9c0}'),
        ('\u{a9cf}', '\u{a9d9}'),
        ('\u{a9e0}', '\u{a9fe}'),
        ('\u{aa00}', '\u{aa36}'),
        ('\u{aa40}', '\u{aa4d}'),
        ('\u{aa50}', '\u{aa59}'),
        ('\u{aa60}', '\u{aa76}'),
        ('\u{aa7a}', '\u{aac2}'),
        ('\u{aadb}', '\u{aadd}'),
        ('\u{aae0}', '\u{aaef}'),
        ('\u{aaf2}', '\u{aaf6}'),
        ('\u{ab01}', '\u{ab06}'),
        ('\u{ab09}', '\u{ab0e}'),
        ('\u{ab11}', '\u{ab16}'),
        ('\u{ab20}', '\u{ab26}'),
        ('\u{ab28}', '\u{ab2e}'),
        ('\u{ab30}', '\u{ab5a}'),
        ('\u{ab5c}', '\u{ab69}'),
        ('\u{ab70}', '\u{abea}'),
        ('\u{abec}', '\u{abed}'),
        ('\u{abf0}', '\u{abf9}'),
        ('\u{ac00}', '\u{d7a3}'),
        ('\u{d7b0}', '\u{d7c6}'),
        ('\u{d7cb}', '\u{d7fb}'),
        ('\u{f900}', '\u{fa6d}'),
        ('\u{fa70}', '\u{fad9}'),
        ('\u{fb00}', '\u{fb06}'),
        ('\u{fb13}', '\u{fb17}'),
        ('\u{fb1d}', '\u{fb28}'),
        ('\u{fb2a}', '\u{fb36}'),
        ('\u{fb38}', '\u{fb3c}'),
        ('\u{fb3e}', '\u{fb3e}'),
        ('\u{fb40}', '\u{fb41}'),
        ('\u{fb43}', '\u{fb44}'),
        ('\u{fb46}', '\u{fbb1}'),
        ('\u{fbd3}', '\u{fc5d}'),
        ('\u{fc64}', '\u{fd3d}'),
        ('\u{fd50}', '\u{fd8f}'),
        ('\u{fd92}', '\u{fdc7}'),
        ('\u{fdf0}', '\u{fdf9}'),
        ('\u{fe00}', '\u{fe0f}'),
        ('\u{fe20}', '\u{fe2f}'),
        ('\u{fe33}', '\u{fe34}'),
        ('\u{fe4d}', '\u{fe4f}'),
        ('\u{fe71}', '\u{fe71}'),
        ('\u{fe73}', '\u{fe73}'),
        ('\u{fe77}', '\u{fe77}'),
        ('\u{fe79}', '\u{fe79}'),
        ('\u{fe7b}', '\u{fe7b}'),
        ('\u{fe7d}', '\u{fe7d}'),
        ('\u{fe7f}', '\u{fefc}'),
        ('\u{ff10}', '\u{ff19}'),
        ('\u{ff21}', '\u{ff3a}'),
        ('\u{ff3f}', '\u{ff3f}'),
        ('\u{ff41}', '\u{ff5a}'),
        ('\u{ff66}', '\u{ffbe}'),
        ('\u{ffc2}', '\u{ffc7}'),
        ('\u{ffca}', '\u{ffcf}'),
        ('\u{ffd2}', '\u{ffd7}'),
        ('\u{ffda}', '\u{ffdc}'),
        ('\u{10000}', '\u{1000b}'),
        ('\u{1000d}', '\u{10026}'),
        ('\u{10028}', '\u{1003a}'),
        ('\u{1003c}', '\u{1003d}'),
        ('\u{1003f}', '\u{1004d}'),
        ('\u{10050}', '\u{1005d}'),
        ('\u{10080}', '\u{100fa}'),
        ('\u{10140}', '\u{10174}'),
        ('\u{101fd}', '\u{101fd}'),
        ('\u{10280}', '\u{1029c}'),
        ('\u{102a0}', '\u{102d0}'),
        ('\u{102e0}', '\u{102e0}'),
        ('\u{10300}', '\u{1031f}'),
        ('\u{1032d}', '\u{1034a}'),
        ('\u{10350}', '\u{1037a}'),
        ('\u{10380}', '\u{1039d}'),
        ('\u{103a0}', '\u{103c3}'),
        ('\u{103c8}', '\u{103cf}'),
        ('\u{103d1}', '\u{103d5}'),
        ('\u{10400}', '\u{1049d}'),
        ('\u{104a0}', '\u{104a9}'),
        ('\u{104b0}', '\u{104d3}'),
        ('\u{104d8}', '\u{104fb}'),
        ('\u{10500}', '\u{10527}'),
        ('\u{10530}', '\u{10563}'),
        ('\u{10600}', '\u{10736}'),
        ('\u{10740}', '\u{10755}'),
        ('\u{10760}', '\u{10767}'),
        ('\u{10800}', '\u{10805}'),
        ('\u{10808}', '\u{10808}'),
        ('\u{1080a}', '\u{10835}'),
        ('\u{10837}', '\u{10838}'),
        ('\u{1083c}', '\u{1083c}'),
        ('\u{1083f}', '\u{10855}'),
        ('\u{10860}', '\u{10876}'),
        ('\u{10880}', '\u{1089e}'),
        ('\u{108e0}', '\u{108f2}'),
        ('\u{108f4}', '\u{108f5}'),
        ('\u{10900}', '\u{10915}'),
        ('\u{10920}', '\u{10939}'),
        ('\u{10980}', '\u{109b7}'),
        ('\u{109be}', '\u{109bf}'),
        ('\u{10a00}', '\u{10a03}'),
        ('\u{10a05}', '\u{10a06}'),
        ('\u{10a0c}', '\u{10a13}'),
        ('\u{10a15}', '\u{10a17}'),
        ('\u{10a19}', '\u{10a35}'),
        ('\u{10a38}', '\u{10a3a}'),
        ('\u{10a3f}', '\u{10a3f}'),
        ('\u{10a60}', '\u{10a7c}'),
        ('\u{10a80}', '\u{10a9c}'),
        ('\u{10ac0}', '\u{10ac7}'),
        ('\u{10ac9}', '\u{10ae6}'),
        ('\u{10b00}', '\u{10b35}'),
        ('\u{10b40}', '\u{10b55}'),
        ('\u{10b60}', '\u{10b72}'),
        ('\u{10b80}', '\u{10b91}'),
        ('\u{10c00}', '\u{10c48}'),
        ('\u{10c80}', '\u{10cb2}'),
        ('\u{10cc0}', '\u{10cf2}'),
        ('\u{10d00}', '\u{10d27}'),
        ('\u{10d30}', '\u{10d39}'),
        ('\u{10e80}', '\u{10ea9}'),
        ('\u{10eab}', '\u{10eac}'),
        ('\u{10eb0}', '\u{10eb1}'),
        ('\u{10f00}', '\u{10f1c}'),
        ('\u{10f27}', '\u{10f27}'),
        ('\u{10f30}', '\u{10f50}'),
        ('\u{10fb0}', '\u{10fc4}'),
        ('\u{10fe0}', '\u{10ff6}'),
        ('\u{11000}', '\u{11046}'),
        ('\u{11066}', '\u{1106f}'),
        ('\u{1107f}', '\u{110ba}'),
        ('\u{110d0}', '\u{110e8}'),
        ('\u{110f0}', '\u{110f9}'),
        ('\u{11100}', '\u{11134}'),
        ('\u{11136}', '\u{1113f}'),
        ('\u{11144}', '\u{11147}'),
        ('\u{11150}', '\u{11173}'),
        ('\u{11176}', '\u{11176}'),
        ('\u{11180}', '\u{111c4}'),
        ('\u{111c9}', '\u{111cc}'),
        ('\u{111ce}', '\u{111da}'),
        ('\u{111dc}', '\u{111dc}'),
        ('\u{11200}', '\u{11211}'),
        ('\u{11213}', '\u{11237}'),
        ('\u{1123e}', '\u{1123e}'),
        ('\u{11280}', '\u{11286}'),
        ('\u{11288}', '\u{11288}'),
        ('\u{1128a}', '\u{1128d}'),
        ('\u{1128f}', '\u{1129d}'),
        ('\u{1129f}', '\u{112a8}'),
        ('\u{112b0}', '\u{112ea}'),
        ('\u{112f0}', '\u{112f9}'),
        ('\u{11300}', '\u{11303}'),
        ('\u{11305}', '\u{1130c}'),
        ('\u{1130f}', '\u{11310}'),
        ('\u{11313}', '\u{11328}'),
        ('\u{1132a}', '\u{11330}'),
        ('\u{11332}', '\u{11333}'),
        ('\u{11335}', '\u{11339}'),
        ('\u{1133b}', '\u{11344}'),
        ('\u{11347}', '\u{11348}'),
        ('\u{1134b}', '\u{1134d}'),
        ('\u{11350}', '\u{11350}'),
        ('\u{11357}', '\u{11357}'),
        ('\u{1135d}', '\u{11363}'),
        ('\u{11366}', '\u{1136c}'),
        ('\u{11370}', '\u{11374}'),
        ('\u{11400}', '\u{1144a}'),
        ('\u{11450}', '\u{11459}'),
        ('\u{1145e}', '\u{11461}'),
        ('\u{11480}', '\u{114c5}'),
        ('\u{114c7}', '\u{114c7}'),
        ('\u{114d0}', '\u{114d9}'),
        ('\u{11580}', '\u{115b5}'),
        ('\u{115b8}', '\u{115c0}'),
        ('\u{115d8}', '\u{115dd}'),
        ('\u{11600}', '\u{11640}'),
        ('\u{11644}', '\u{11644}'),
        ('\u{11650}', '\u{11659}'),
        ('\u{11680}', '\u{116b8}'),
        ('\u{116c0}', '\u{116c9}'),
        ('\u{11700}', '\u{1171a}'),
        ('\u{1171d}', '\u{1172b}'),
        ('\u{11730}', '\u{11739}'),
        ('\u{11800}', '\u{1183a}'),
        ('\u{118a0}', '\u{118e9}'),
        ('\u{118ff}', '\u{11906}'),
        ('\u{11909}', '\u{11909}'),
        ('\u{1190c}', '\u{11913}'),
        ('\u{11915}', '\u{11916}'),
        ('\u{11918}', '\u{11935}'),
        ('\u{11937}', '\u{11938}'),
        ('\u{1193b}', '\u{11943}'),
        ('\u{11950}', '\u{11959}'),
        ('\u{119a0}', '\u{119a7}'),
        ('\u{119aa}', '\u{119d7}'),
        ('\u{119da}', '\u{119e1}'),
        ('\u{119e3}', '\u{119e4}'),
        ('\u{11a00}', '\u{11a3e}'),
        ('\u{11a47}', '\u{11a47}'),
        ('\u{11a50}', '\u{11a99}'),
        ('\u{11a9d}', '\u{11a9d}'),
        ('\u{11ac0}', '\u{11af8}'),
        ('\u{11c00}', '\u{11c08}'),
        ('\u{11c0a}', '\u{11c36}'),
        ('\u{11c38}', '\u{11c40}'),
        ('\u{11c50}', '\u{11c59}'),
        ('\u{11c72}', '\u{11c8f}'),
        ('\u{11c92}', '\u{11ca7}'),
        ('\u{11ca9}', '\u{11cb6}'),
        ('\u{11d00}', '\u{11d06}'),
        ('\u{11d08}', '\u{11d09}'),
        ('\u{11d0b}', '\u{11d36}'),
        ('\u{11d3a}', '\u{11d3a}'),
        ('\u{11d3c}', '\u{11d3d}'),
        ('\u{11d3f}', '\u{11d47}'),
        ('\u{11d50}', '\u{11d59}'),
        ('\u{11d60}', '\u{11d65}'),
        ('\u{11d67}', '\u{11d68}'),
        ('\u{11d6a}', '\u{11d8e}'),
        ('\u{11d90}', '\u{11d91}'),
        ('\u{11d93}', '\u{11d98}'),
        ('\u{11da0}', '\u{11da9}'),
        ('\u{11ee0}', '\u{11ef6}'),
        ('\u{11fb0}', '\u{11fb0}'),
        ('\u{12000}', '\u{12399}'),
        ('\u{12400}', '\u{1246e}'),
        ('\u{12480}', '\u{12543}'),
        ('\u{13000}', '\u{1342e}'),
        ('\u{14400}', '\u{14646}'),
        ('\u{16800}', '\u{16a38}'),
        ('\u{16a40}', '\u{16a5e}'),
        ('\u{16a60}', '\u{16a69}'),
        ('\u{16ad0}', '\u{16aed}'),
        ('\u{16af0}', '\u{16af4}'),
        ('\u{16b00}', '\u{16b36}'),
        ('\u{16b40}', '\u{16b43}'),
        ('\u{16b50}', '\u{16b59}'),
        ('\u{16b63}', '\u{16b77}'),
        ('\u{16b7d}', '\u{16b8f}'),
        ('\u{16e40}', '\u{16e7f}'),
        ('\u{16f00}', '\u{16f4a}'),
        ('\u{16f4f}', '\u{16f87}'),
        ('\u{16f8f}', '\u{16f9f}'),
        ('\u{16fe0}', '\u{16fe1}'),
        ('\u{16fe3}', '\u{16fe4}'),
        ('\u{16ff0}', '\u{16ff1}'),
        ('\u{17000}', '\u{187f7}'),
        ('\u{18800}', '\u{18cd5}'),
        ('\u{18d00}', '\u{18d08}'),
        ('\u{1b000}', '\u{1b11e}'),
        ('\u{1b150}', '\u{1b152}'),
        ('\u{1b164}', '\u{1b167}'),
        ('\u{1b170}', '\u{1b2fb}'),
        ('\u{1bc00}', '\u{1bc6a}'),
        ('\u{1bc70}', '\u{1bc7c}'),
        ('\u{1bc80}', '\u{1bc88}'),
        ('\u{1bc90}', '\u{1bc99}'),
        ('\u{1bc9d}', '\u{1bc9e}'),
        ('\u{1d165}', '\u{1d169}'),
        ('\u{1d16d}', '\u{1d172}'),
        ('\u{1d17b}', '\u{1d182}'),
        ('\u{1d185}', '\u{1d18b}'),
        ('\u{1d1aa}', '\u{1d1ad}'),
        ('\u{1d242}', '\u{1d244}'),
        ('\u{1d400}', '\u{1d454}'),
        ('\u{1d456}', '\u{1d49c}'),
        ('\u{1d49e}', '\u{1d49f}'),
        ('\u{1d4a2}', '\u{1d4a2}'),
        ('\u{1d4a5}', '\u{1d4a6}'),
        ('\u{1d4a9}', '\u{1d4ac}'),
        ('\u{1d4ae}', '\u{1d4b9}'),
        ('\u{1d4bb}', '\u{1d4bb}'),
        ('\u{1d4bd}', '\u{1d4c3}'),
        ('\u{1d4c5}', '\u{1d505}'),
        ('\u{1d507}', '\u{1d50a}'),
        ('\u{1d50d}', '\u{1d514}'),
        ('\u{1d516}', '\u{1d51c}'),
        ('\u{1d51e}', '\u{1d539}'),
        ('\u{1d53b}', '\u{1d53e}'),
        ('\u{1d540}', '\u{1d544}'),
        ('\u{1d546}', '\u{1d546}'),
        ('\u{1d54a}', '\u{1d550}'),
        ('\u{1d552}', '\u{1d6a5}'),
        ('\u{1d6a8}', '\u{1d6c0}'),
        ('\u{1d6c2}', '\u{1d6da}'),
        ('\u{1d6dc}', '\u{1d6fa}'),
        ('\u{1d6fc}', '\u{1d714}'),
        ('\u{1d716}', '\u{1d734}'),
        ('\u{1d736}', '\u{1d74e}'),
        ('\u{1d750}', '\u{1d76e}'),
        ('\u{1d770}', '\u{1d788}'),
        ('\u{1d78a}', '\u{1d7a8}'),
        ('\u{1d7aa}', '\u{1d7c2}'),
        ('\u{1d7c4}', '\u{1d7cb}'),
        ('\u{1d7ce}', '\u{1d7ff}'),
        ('\u{1da00}', '\u{1da36}'),
        ('\u{1da3b}', '\u{1da6c}'),
        ('\u{1da75}', '\u{1da75}'),
        ('\u{1da84}', '\u{1da84}'),
        ('\u{1da9b}', '\u{1da9f}'),
        ('\u{1daa1}', '\u{1daaf}'),
        ('\u{1e000}', '\u{1e006}'),
        ('\u{1e008}', '\u{1e018}'),
        ('\u{1e01b}', '\u{1e021}'),
        ('\u{1e023}', '\u{1e024}'),
        ('\u{1e026}', '\u{1e02a}'),
        ('\u{1e100}', '\u{1e12c}'),
        ('\u{1e130}', '\u{1e13d}'),
        ('\u{1e140}', '\u{1e149}'),
        ('\u{1e14e}', '\u{1e14e}'),
        ('\u{1e2c0}', '\u{1e2f9}'),
        ('\u{1e800}', '\u{1e8c4}'),
        ('\u{1e8d0}', '\u{1e8d6}'),
        ('\u{1e900}', '\u{1e94b}'),
        ('\u{1e950}', '\u{1e959}'),
        ('\u{1ee00}', '\u{1ee03}'),
        ('\u{1ee05}', '\u{1ee1f}'),
        ('\u{1ee21}', '\u{1ee22}'),
        ('\u{1ee24}', '\u{1ee24}'),
        ('\u{1ee27}', '\u{1ee27}'),
        ('\u{1ee29}', '\u{1ee32}'),
        ('\u{1ee34}', '\u{1ee37}'),
        ('\u{1ee39}', '\u{1ee39}'),
        ('\u{1ee3b}', '\u{1ee3b}'),
        ('\u{1ee42}', '\u{1ee42}'),
        ('\u{1ee47}', '\u{1ee47}'),
        ('\u{1ee49}', '\u{1ee49}'),
        ('\u{1ee4b}', '\u{1ee4b}'),
        ('\u{1ee4d}', '\u{1ee4f}'),
        ('\u{1ee51}', '\u{1ee52}'),
        ('\u{1ee54}', '\u{1ee54}'),
        ('\u{1ee57}', '\u{1ee57}'),
        ('\u{1ee59}', '\u{1ee59}'),
        ('\u{1ee5b}', '\u{1ee5b}'),
        ('\u{1ee5d}', '\u{1ee5d}'),
        ('\u{1ee5f}', '\u{1ee5f}'),
        ('\u{1ee61}', '\u{1ee62}'),
        ('\u{1ee64}', '\u{1ee64}'),
        ('\u{1ee67}', '\u{1ee6a}'),
        ('\u{1ee6c}', '\u{1ee72}'),
        ('\u{1ee74}', '\u{1ee77}'),
        ('\u{1ee79}', '\u{1ee7c}'),
        ('\u{1ee7e}', '\u{1ee7e}'),
        ('\u{1ee80}', '\u{1ee89}'),
        ('\u{1ee8b}', '\u{1ee9b}'),
        ('\u{1eea1}', '\u{1eea3}'),
        ('\u{1eea5}', '\u{1eea9}'),
        ('\u{1eeab}', '\u{1eebb}'),
        ('\u{1fbf0}', '\u{1fbf9}'),
        ('\u{20000}', '\u{2a6dd}'),
        ('\u{2a700}', '\u{2b734}'),
        ('\u{2b740}', '\u{2b81d}'),
        ('\u{2b820}', '\u{2cea1}'),
        ('\u{2ceb0}', '\u{2ebe0}'),
        ('\u{2f800}', '\u{2fa1d}'),
        ('\u{30000}', '\u{3134a}'),
        ('\u{e0100}', '\u{e01ef}'),
    ];

    pub fn XID_Continue(c: char) -> bool {
        super::bsearch_range_table(c, XID_Continue_table)
    }

    pub const XID_Start_table: &[(char, char)] = &[
        ('\u{41}', '\u{5a}'),
        ('\u{61}', '\u{7a}'),
        ('\u{aa}', '\u{aa}'),
        ('\u{b5}', '\u{b5}'),
        ('\u{ba}', '\u{ba}'),
        ('\u{c0}', '\u{d6}'),
        ('\u{d8}', '\u{f6}'),
        ('\u{f8}', '\u{2c1}'),
        ('\u{2c6}', '\u{2d1}'),
        ('\u{2e0}', '\u{2e4}'),
        ('\u{2ec}', '\u{2ec}'),
        ('\u{2ee}', '\u{2ee}'),
        ('\u{370}', '\u{374}'),
        ('\u{376}', '\u{377}'),
        ('\u{37b}', '\u{37d}'),
        ('\u{37f}', '\u{37f}'),
        ('\u{386}', '\u{386}'),
        ('\u{388}', '\u{38a}'),
        ('\u{38c}', '\u{38c}'),
        ('\u{38e}', '\u{3a1}'),
        ('\u{3a3}', '\u{3f5}'),
        ('\u{3f7}', '\u{481}'),
        ('\u{48a}', '\u{52f}'),
        ('\u{531}', '\u{556}'),
        ('\u{559}', '\u{559}'),
        ('\u{560}', '\u{588}'),
        ('\u{5d0}', '\u{5ea}'),
        ('\u{5ef}', '\u{5f2}'),
        ('\u{620}', '\u{64a}'),
        ('\u{66e}', '\u{66f}'),
        ('\u{671}', '\u{6d3}'),
        ('\u{6d5}', '\u{6d5}'),
        ('\u{6e5}', '\u{6e6}'),
        ('\u{6ee}', '\u{6ef}'),
        ('\u{6fa}', '\u{6fc}'),
        ('\u{6ff}', '\u{6ff}'),
        ('\u{710}', '\u{710}'),
        ('\u{712}', '\u{72f}'),
        ('\u{74d}', '\u{7a5}'),
        ('\u{7b1}', '\u{7b1}'),
        ('\u{7ca}', '\u{7ea}'),
        ('\u{7f4}', '\u{7f5}'),
        ('\u{7fa}', '\u{7fa}'),
        ('\u{800}', '\u{815}'),
        ('\u{81a}', '\u{81a}'),
        ('\u{824}', '\u{824}'),
        ('\u{828}', '\u{828}'),
        ('\u{840}', '\u{858}'),
        ('\u{860}', '\u{86a}'),
        ('\u{8a0}', '\u{8b4}'),
        ('\u{8b6}', '\u{8c7}'),
        ('\u{904}', '\u{939}'),
        ('\u{93d}', '\u{93d}'),
        ('\u{950}', '\u{950}'),
        ('\u{958}', '\u{961}'),
        ('\u{971}', '\u{980}'),
        ('\u{985}', '\u{98c}'),
        ('\u{98f}', '\u{990}'),
        ('\u{993}', '\u{9a8}'),
        ('\u{9aa}', '\u{9b0}'),
        ('\u{9b2}', '\u{9b2}'),
        ('\u{9b6}', '\u{9b9}'),
        ('\u{9bd}', '\u{9bd}'),
        ('\u{9ce}', '\u{9ce}'),
        ('\u{9dc}', '\u{9dd}'),
        ('\u{9df}', '\u{9e1}'),
        ('\u{9f0}', '\u{9f1}'),
        ('\u{9fc}', '\u{9fc}'),
        ('\u{a05}', '\u{a0a}'),
        ('\u{a0f}', '\u{a10}'),
        ('\u{a13}', '\u{a28}'),
        ('\u{a2a}', '\u{a30}'),
        ('\u{a32}', '\u{a33}'),
        ('\u{a35}', '\u{a36}'),
        ('\u{a38}', '\u{a39}'),
        ('\u{a59}', '\u{a5c}'),
        ('\u{a5e}', '\u{a5e}'),
        ('\u{a72}', '\u{a74}'),
        ('\u{a85}', '\u{a8d}'),
        ('\u{a8f}', '\u{a91}'),
        ('\u{a93}', '\u{aa8}'),
        ('\u{aaa}', '\u{ab0}'),
        ('\u{ab2}', '\u{ab3}'),
        ('\u{ab5}', '\u{ab9}'),
        ('\u{abd}', '\u{abd}'),
        ('\u{ad0}', '\u{ad0}'),
        ('\u{ae0}', '\u{ae1}'),
        ('\u{af9}', '\u{af9}'),
        ('\u{b05}', '\u{b0c}'),
        ('\u{b0f}', '\u{b10}'),
        ('\u{b13}', '\u{b28}'),
        ('\u{b2a}', '\u{b30}'),
        ('\u{b32}', '\u{b33}'),
        ('\u{b35}', '\u{b39}'),
        ('\u{b3d}', '\u{b3d}'),
        ('\u{b5c}', '\u{b5d}'),
        ('\u{b5f}', '\u{b61}'),
        ('\u{b71}', '\u{b71}'),
        ('\u{b83}', '\u{b83}'),
        ('\u{b85}', '\u{b8a}'),
        ('\u{b8e}', '\u{b90}'),
        ('\u{b92}', '\u{b95}'),
        ('\u{b99}', '\u{b9a}'),
        ('\u{b9c}', '\u{b9c}'),
        ('\u{b9e}', '\u{b9f}'),
        ('\u{ba3}', '\u{ba4}'),
        ('\u{ba8}', '\u{baa}'),
        ('\u{bae}', '\u{bb9}'),
        ('\u{bd0}', '\u{bd0}'),
        ('\u{c05}', '\u{c0c}'),
        ('\u{c0e}', '\u{c10}'),
        ('\u{c12}', '\u{c28}'),
        ('\u{c2a}', '\u{c39}'),
        ('\u{c3d}', '\u{c3d}'),
        ('\u{c58}', '\u{c5a}'),
        ('\u{c60}', '\u{c61}'),
        ('\u{c80}', '\u{c80}'),
        ('\u{c85}', '\u{c8c}'),
        ('\u{c8e}', '\u{c90}'),
        ('\u{c92}', '\u{ca8}'),
        ('\u{caa}', '\u{cb3}'),
        ('\u{cb5}', '\u{cb9}'),
        ('\u{cbd}', '\u{cbd}'),
        ('\u{cde}', '\u{cde}'),
        ('\u{ce0}', '\u{ce1}'),
        ('\u{cf1}', '\u{cf2}'),
        ('\u{d04}', '\u{d0c}'),
        ('\u{d0e}', '\u{d10}'),
        ('\u{d12}', '\u{d3a}'),
        ('\u{d3d}', '\u{d3d}'),
        ('\u{d4e}', '\u{d4e}'),
        ('\u{d54}', '\u{d56}'),
        ('\u{d5f}', '\u{d61}'),
        ('\u{d7a}', '\u{d7f}'),
        ('\u{d85}', '\u{d96}'),
        ('\u{d9a}', '\u{db1}'),
        ('\u{db3}', '\u{dbb}'),
        ('\u{dbd}', '\u{dbd}'),
        ('\u{dc0}', '\u{dc6}'),
        ('\u{e01}', '\u{e30}'),
        ('\u{e32}', '\u{e32}'),
        ('\u{e40}', '\u{e46}'),
        ('\u{e81}', '\u{e82}'),
        ('\u{e84}', '\u{e84}'),
        ('\u{e86}', '\u{e8a}'),
        ('\u{e8c}', '\u{ea3}'),
        ('\u{ea5}', '\u{ea5}'),
        ('\u{ea7}', '\u{eb0}'),
        ('\u{eb2}', '\u{eb2}'),
        ('\u{ebd}', '\u{ebd}'),
        ('\u{ec0}', '\u{ec4}'),
        ('\u{ec6}', '\u{ec6}'),
        ('\u{edc}', '\u{edf}'),
        ('\u{f00}', '\u{f00}'),
        ('\u{f40}', '\u{f47}'),
        ('\u{f49}', '\u{f6c}'),
        ('\u{f88}', '\u{f8c}'),
        ('\u{1000}', '\u{102a}'),
        ('\u{103f}', '\u{103f}'),
        ('\u{1050}', '\u{1055}'),
        ('\u{105a}', '\u{105d}'),
        ('\u{1061}', '\u{1061}'),
        ('\u{1065}', '\u{1066}'),
        ('\u{106e}', '\u{1070}'),
        ('\u{1075}', '\u{1081}'),
        ('\u{108e}', '\u{108e}'),
        ('\u{10a0}', '\u{10c5}'),
        ('\u{10c7}', '\u{10c7}'),
        ('\u{10cd}', '\u{10cd}'),
        ('\u{10d0}', '\u{10fa}'),
        ('\u{10fc}', '\u{1248}'),
        ('\u{124a}', '\u{124d}'),
        ('\u{1250}', '\u{1256}'),
        ('\u{1258}', '\u{1258}'),
        ('\u{125a}', '\u{125d}'),
        ('\u{1260}', '\u{1288}'),
        ('\u{128a}', '\u{128d}'),
        ('\u{1290}', '\u{12b0}'),
        ('\u{12b2}', '\u{12b5}'),
        ('\u{12b8}', '\u{12be}'),
        ('\u{12c0}', '\u{12c0}'),
        ('\u{12c2}', '\u{12c5}'),
        ('\u{12c8}', '\u{12d6}'),
        ('\u{12d8}', '\u{1310}'),
        ('\u{1312}', '\u{1315}'),
        ('\u{1318}', '\u{135a}'),
        ('\u{1380}', '\u{138f}'),
        ('\u{13a0}', '\u{13f5}'),
        ('\u{13f8}', '\u{13fd}'),
        ('\u{1401}', '\u{166c}'),
        ('\u{166f}', '\u{167f}'),
        ('\u{1681}', '\u{169a}'),
        ('\u{16a0}', '\u{16ea}'),
        ('\u{16ee}', '\u{16f8}'),
        ('\u{1700}', '\u{170c}'),
        ('\u{170e}', '\u{1711}'),
        ('\u{1720}', '\u{1731}'),
        ('\u{1740}', '\u{1751}'),
        ('\u{1760}', '\u{176c}'),
        ('\u{176e}', '\u{1770}'),
        ('\u{1780}', '\u{17b3}'),
        ('\u{17d7}', '\u{17d7}'),
        ('\u{17dc}', '\u{17dc}'),
        ('\u{1820}', '\u{1878}'),
        ('\u{1880}', '\u{18a8}'),
        ('\u{18aa}', '\u{18aa}'),
        ('\u{18b0}', '\u{18f5}'),
        ('\u{1900}', '\u{191e}'),
        ('\u{1950}', '\u{196d}'),
        ('\u{1970}', '\u{1974}'),
        ('\u{1980}', '\u{19ab}'),
        ('\u{19b0}', '\u{19c9}'),
        ('\u{1a00}', '\u{1a16}'),
        ('\u{1a20}', '\u{1a54}'),
        ('\u{1aa7}', '\u{1aa7}'),
        ('\u{1b05}', '\u{1b33}'),
        ('\u{1b45}', '\u{1b4b}'),
        ('\u{1b83}', '\u{1ba0}'),
        ('\u{1bae}', '\u{1baf}'),
        ('\u{1bba}', '\u{1be5}'),
        ('\u{1c00}', '\u{1c23}'),
        ('\u{1c4d}', '\u{1c4f}'),
        ('\u{1c5a}', '\u{1c7d}'),
        ('\u{1c80}', '\u{1c88}'),
        ('\u{1c90}', '\u{1cba}'),
        ('\u{1cbd}', '\u{1cbf}'),
        ('\u{1ce9}', '\u{1cec}'),
        ('\u{1cee}', '\u{1cf3}'),
        ('\u{1cf5}', '\u{1cf6}'),
        ('\u{1cfa}', '\u{1cfa}'),
        ('\u{1d00}', '\u{1dbf}'),
        ('\u{1e00}', '\u{1f15}'),
        ('\u{1f18}', '\u{1f1d}'),
        ('\u{1f20}', '\u{1f45}'),
        ('\u{1f48}', '\u{1f4d}'),
        ('\u{1f50}', '\u{1f57}'),
        ('\u{1f59}', '\u{1f59}'),
        ('\u{1f5b}', '\u{1f5b}'),
        ('\u{1f5d}', '\u{1f5d}'),
        ('\u{1f5f}', '\u{1f7d}'),
        ('\u{1f80}', '\u{1fb4}'),
        ('\u{1fb6}', '\u{1fbc}'),
        ('\u{1fbe}', '\u{1fbe}'),
        ('\u{1fc2}', '\u{1fc4}'),
        ('\u{1fc6}', '\u{1fcc}'),
        ('\u{1fd0}', '\u{1fd3}'),
        ('\u{1fd6}', '\u{1fdb}'),
        ('\u{1fe0}', '\u{1fec}'),
        ('\u{1ff2}', '\u{1ff4}'),
        ('\u{1ff6}', '\u{1ffc}'),
        ('\u{2071}', '\u{2071}'),
        ('\u{207f}', '\u{207f}'),
        ('\u{2090}', '\u{209c}'),
        ('\u{2102}', '\u{2102}'),
        ('\u{2107}', '\u{2107}'),
        ('\u{210a}', '\u{2113}'),
        ('\u{2115}', '\u{2115}'),
        ('\u{2118}', '\u{211d}'),
        ('\u{2124}', '\u{2124}'),
        ('\u{2126}', '\u{2126}'),
        ('\u{2128}', '\u{2128}'),
        ('\u{212a}', '\u{2139}'),
        ('\u{213c}', '\u{213f}'),
        ('\u{2145}', '\u{2149}'),
        ('\u{214e}', '\u{214e}'),
        ('\u{2160}', '\u{2188}'),
        ('\u{2c00}', '\u{2c2e}'),
        ('\u{2c30}', '\u{2c5e}'),
        ('\u{2c60}', '\u{2ce4}'),
        ('\u{2ceb}', '\u{2cee}'),
        ('\u{2cf2}', '\u{2cf3}'),
        ('\u{2d00}', '\u{2d25}'),
        ('\u{2d27}', '\u{2d27}'),
        ('\u{2d2d}', '\u{2d2d}'),
        ('\u{2d30}', '\u{2d67}'),
        ('\u{2d6f}', '\u{2d6f}'),
        ('\u{2d80}', '\u{2d96}'),
        ('\u{2da0}', '\u{2da6}'),
        ('\u{2da8}', '\u{2dae}'),
        ('\u{2db0}', '\u{2db6}'),
        ('\u{2db8}', '\u{2dbe}'),
        ('\u{2dc0}', '\u{2dc6}'),
        ('\u{2dc8}', '\u{2dce}'),
        ('\u{2dd0}', '\u{2dd6}'),
        ('\u{2dd8}', '\u{2dde}'),
        ('\u{3005}', '\u{3007}'),
        ('\u{3021}', '\u{3029}'),
        ('\u{3031}', '\u{3035}'),
        ('\u{3038}', '\u{303c}'),
        ('\u{3041}', '\u{3096}'),
        ('\u{309d}', '\u{309f}'),
        ('\u{30a1}', '\u{30fa}'),
        ('\u{30fc}', '\u{30ff}'),
        ('\u{3105}', '\u{312f}'),
        ('\u{3131}', '\u{318e}'),
        ('\u{31a0}', '\u{31bf}'),
        ('\u{31f0}', '\u{31ff}'),
        ('\u{3400}', '\u{4dbf}'),
        ('\u{4e00}', '\u{9ffc}'),
        ('\u{a000}', '\u{a48c}'),
        ('\u{a4d0}', '\u{a4fd}'),
        ('\u{a500}', '\u{a60c}'),
        ('\u{a610}', '\u{a61f}'),
        ('\u{a62a}', '\u{a62b}'),
        ('\u{a640}', '\u{a66e}'),
        ('\u{a67f}', '\u{a69d}'),
        ('\u{a6a0}', '\u{a6ef}'),
        ('\u{a717}', '\u{a71f}'),
        ('\u{a722}', '\u{a788}'),
        ('\u{a78b}', '\u{a7bf}'),
        ('\u{a7c2}', '\u{a7ca}'),
        ('\u{a7f5}', '\u{a801}'),
        ('\u{a803}', '\u{a805}'),
        ('\u{a807}', '\u{a80a}'),
        ('\u{a80c}', '\u{a822}'),
        ('\u{a840}', '\u{a873}'),
        ('\u{a882}', '\u{a8b3}'),
        ('\u{a8f2}', '\u{a8f7}'),
        ('\u{a8fb}', '\u{a8fb}'),
        ('\u{a8fd}', '\u{a8fe}'),
        ('\u{a90a}', '\u{a925}'),
        ('\u{a930}', '\u{a946}'),
        ('\u{a960}', '\u{a97c}'),
        ('\u{a984}', '\u{a9b2}'),
        ('\u{a9cf}', '\u{a9cf}'),
        ('\u{a9e0}', '\u{a9e4}'),
        ('\u{a9e6}', '\u{a9ef}'),
        ('\u{a9fa}', '\u{a9fe}'),
        ('\u{aa00}', '\u{aa28}'),
        ('\u{aa40}', '\u{aa42}'),
        ('\u{aa44}', '\u{aa4b}'),
        ('\u{aa60}', '\u{aa76}'),
        ('\u{aa7a}', '\u{aa7a}'),
        ('\u{aa7e}', '\u{aaaf}'),
        ('\u{aab1}', '\u{aab1}'),
        ('\u{aab5}', '\u{aab6}'),
        ('\u{aab9}', '\u{aabd}'),
        ('\u{aac0}', '\u{aac0}'),
        ('\u{aac2}', '\u{aac2}'),
        ('\u{aadb}', '\u{aadd}'),
        ('\u{aae0}', '\u{aaea}'),
        ('\u{aaf2}', '\u{aaf4}'),
        ('\u{ab01}', '\u{ab06}'),
        ('\u{ab09}', '\u{ab0e}'),
        ('\u{ab11}', '\u{ab16}'),
        ('\u{ab20}', '\u{ab26}'),
        ('\u{ab28}', '\u{ab2e}'),
        ('\u{ab30}', '\u{ab5a}'),
        ('\u{ab5c}', '\u{ab69}'),
        ('\u{ab70}', '\u{abe2}'),
        ('\u{ac00}', '\u{d7a3}'),
        ('\u{d7b0}', '\u{d7c6}'),
        ('\u{d7cb}', '\u{d7fb}'),
        ('\u{f900}', '\u{fa6d}'),
        ('\u{fa70}', '\u{fad9}'),
        ('\u{fb00}', '\u{fb06}'),
        ('\u{fb13}', '\u{fb17}'),
        ('\u{fb1d}', '\u{fb1d}'),
        ('\u{fb1f}', '\u{fb28}'),
        ('\u{fb2a}', '\u{fb36}'),
        ('\u{fb38}', '\u{fb3c}'),
        ('\u{fb3e}', '\u{fb3e}'),
        ('\u{fb40}', '\u{fb41}'),
        ('\u{fb43}', '\u{fb44}'),
        ('\u{fb46}', '\u{fbb1}'),
        ('\u{fbd3}', '\u{fc5d}'),
        ('\u{fc64}', '\u{fd3d}'),
        ('\u{fd50}', '\u{fd8f}'),
        ('\u{fd92}', '\u{fdc7}'),
        ('\u{fdf0}', '\u{fdf9}'),
        ('\u{fe71}', '\u{fe71}'),
        ('\u{fe73}', '\u{fe73}'),
        ('\u{fe77}', '\u{fe77}'),
        ('\u{fe79}', '\u{fe79}'),
        ('\u{fe7b}', '\u{fe7b}'),
        ('\u{fe7d}', '\u{fe7d}'),
        ('\u{fe7f}', '\u{fefc}'),
        ('\u{ff21}', '\u{ff3a}'),
        ('\u{ff41}', '\u{ff5a}'),
        ('\u{ff66}', '\u{ff9d}'),
        ('\u{ffa0}', '\u{ffbe}'),
        ('\u{ffc2}', '\u{ffc7}'),
        ('\u{ffca}', '\u{ffcf}'),
        ('\u{ffd2}', '\u{ffd7}'),
        ('\u{ffda}', '\u{ffdc}'),
        ('\u{10000}', '\u{1000b}'),
        ('\u{1000d}', '\u{10026}'),
        ('\u{10028}', '\u{1003a}'),
        ('\u{1003c}', '\u{1003d}'),
        ('\u{1003f}', '\u{1004d}'),
        ('\u{10050}', '\u{1005d}'),
        ('\u{10080}', '\u{100fa}'),
        ('\u{10140}', '\u{10174}'),
        ('\u{10280}', '\u{1029c}'),
        ('\u{102a0}', '\u{102d0}'),
        ('\u{10300}', '\u{1031f}'),
        ('\u{1032d}', '\u{1034a}'),
        ('\u{10350}', '\u{10375}'),
        ('\u{10380}', '\u{1039d}'),
        ('\u{103a0}', '\u{103c3}'),
        ('\u{103c8}', '\u{103cf}'),
        ('\u{103d1}', '\u{103d5}'),
        ('\u{10400}', '\u{1049d}'),
        ('\u{104b0}', '\u{104d3}'),
        ('\u{104d8}', '\u{104fb}'),
        ('\u{10500}', '\u{10527}'),
        ('\u{10530}', '\u{10563}'),
        ('\u{10600}', '\u{10736}'),
        ('\u{10740}', '\u{10755}'),
        ('\u{10760}', '\u{10767}'),
        ('\u{10800}', '\u{10805}'),
        ('\u{10808}', '\u{10808}'),
        ('\u{1080a}', '\u{10835}'),
        ('\u{10837}', '\u{10838}'),
        ('\u{1083c}', '\u{1083c}'),
        ('\u{1083f}', '\u{10855}'),
        ('\u{10860}', '\u{10876}'),
        ('\u{10880}', '\u{1089e}'),
        ('\u{108e0}', '\u{108f2}'),
        ('\u{108f4}', '\u{108f5}'),
        ('\u{10900}', '\u{10915}'),
        ('\u{10920}', '\u{10939}'),
        ('\u{10980}', '\u{109b7}'),
        ('\u{109be}', '\u{109bf}'),
        ('\u{10a00}', '\u{10a00}'),
        ('\u{10a10}', '\u{10a13}'),
        ('\u{10a15}', '\u{10a17}'),
        ('\u{10a19}', '\u{10a35}'),
        ('\u{10a60}', '\u{10a7c}'),
        ('\u{10a80}', '\u{10a9c}'),
        ('\u{10ac0}', '\u{10ac7}'),
        ('\u{10ac9}', '\u{10ae4}'),
        ('\u{10b00}', '\u{10b35}'),
        ('\u{10b40}', '\u{10b55}'),
        ('\u{10b60}', '\u{10b72}'),
        ('\u{10b80}', '\u{10b91}'),
        ('\u{10c00}', '\u{10c48}'),
        ('\u{10c80}', '\u{10cb2}'),
        ('\u{10cc0}', '\u{10cf2}'),
        ('\u{10d00}', '\u{10d23}'),
        ('\u{10e80}', '\u{10ea9}'),
        ('\u{10eb0}', '\u{10eb1}'),
        ('\u{10f00}', '\u{10f1c}'),
        ('\u{10f27}', '\u{10f27}'),
        ('\u{10f30}', '\u{10f45}'),
        ('\u{10fb0}', '\u{10fc4}'),
        ('\u{10fe0}', '\u{10ff6}'),
        ('\u{11003}', '\u{11037}'),
        ('\u{11083}', '\u{110af}'),
        ('\u{110d0}', '\u{110e8}'),
        ('\u{11103}', '\u{11126}'),
        ('\u{11144}', '\u{11144}'),
        ('\u{11147}', '\u{11147}'),
        ('\u{11150}', '\u{11172}'),
        ('\u{11176}', '\u{11176}'),
        ('\u{11183}', '\u{111b2}'),
        ('\u{111c1}', '\u{111c4}'),
        ('\u{111da}', '\u{111da}'),
        ('\u{111dc}', '\u{111dc}'),
        ('\u{11200}', '\u{11211}'),
        ('\u{11213}', '\u{1122b}'),
        ('\u{11280}', '\u{11286}'),
        ('\u{11288}', '\u{11288}'),
        ('\u{1128a}', '\u{1128d}'),
        ('\u{1128f}', '\u{1129d}'),
        ('\u{1129f}', '\u{112a8}'),
        ('\u{112b0}', '\u{112de}'),
        ('\u{11305}', '\u{1130c}'),
        ('\u{1130f}', '\u{11310}'),
        ('\u{11313}', '\u{11328}'),
        ('\u{1132a}', '\u{11330}'),
        ('\u{11332}', '\u{11333}'),
        ('\u{11335}', '\u{11339}'),
        ('\u{1133d}', '\u{1133d}'),
        ('\u{11350}', '\u{11350}'),
        ('\u{1135d}', '\u{11361}'),
        ('\u{11400}', '\u{11434}'),
        ('\u{11447}', '\u{1144a}'),
        ('\u{1145f}', '\u{11461}'),
        ('\u{11480}', '\u{114af}'),
        ('\u{114c4}', '\u{114c5}'),
        ('\u{114c7}', '\u{114c7}'),
        ('\u{11580}', '\u{115ae}'),
        ('\u{115d8}', '\u{115db}'),
        ('\u{11600}', '\u{1162f}'),
        ('\u{11644}', '\u{11644}'),
        ('\u{11680}', '\u{116aa}'),
        ('\u{116b8}', '\u{116b8}'),
        ('\u{11700}', '\u{1171a}'),
        ('\u{11800}', '\u{1182b}'),
        ('\u{118a0}', '\u{118df}'),
        ('\u{118ff}', '\u{11906}'),
        ('\u{11909}', '\u{11909}'),
        ('\u{1190c}', '\u{11913}'),
        ('\u{11915}', '\u{11916}'),
        ('\u{11918}', '\u{1192f}'),
        ('\u{1193f}', '\u{1193f}'),
        ('\u{11941}', '\u{11941}'),
        ('\u{119a0}', '\u{119a7}'),
        ('\u{119aa}', '\u{119d0}'),
        ('\u{119e1}', '\u{119e1}'),
        ('\u{119e3}', '\u{119e3}'),
        ('\u{11a00}', '\u{11a00}'),
        ('\u{11a0b}', '\u{11a32}'),
        ('\u{11a3a}', '\u{11a3a}'),
        ('\u{11a50}', '\u{11a50}'),
        ('\u{11a5c}', '\u{11a89}'),
        ('\u{11a9d}', '\u{11a9d}'),
        ('\u{11ac0}', '\u{11af8}'),
        ('\u{11c00}', '\u{11c08}'),
        ('\u{11c0a}', '\u{11c2e}'),
        ('\u{11c40}', '\u{11c40}'),
        ('\u{11c72}', '\u{11c8f}'),
        ('\u{11d00}', '\u{11d06}'),
        ('\u{11d08}', '\u{11d09}'),
        ('\u{11d0b}', '\u{11d30}'),
        ('\u{11d46}', '\u{11d46}'),
        ('\u{11d60}', '\u{11d65}'),
        ('\u{11d67}', '\u{11d68}'),
        ('\u{11d6a}', '\u{11d89}'),
        ('\u{11d98}', '\u{11d98}'),
        ('\u{11ee0}', '\u{11ef2}'),
        ('\u{11fb0}', '\u{11fb0}'),
        ('\u{12000}', '\u{12399}'),
        ('\u{12400}', '\u{1246e}'),
        ('\u{12480}', '\u{12543}'),
        ('\u{13000}', '\u{1342e}'),
        ('\u{14400}', '\u{14646}'),
        ('\u{16800}', '\u{16a38}'),
        ('\u{16a40}', '\u{16a5e}'),
        ('\u{16ad0}', '\u{16aed}'),
        ('\u{16b00}', '\u{16b2f}'),
        ('\u{16b40}', '\u{16b43}'),
        ('\u{16b63}', '\u{16b77}'),
        ('\u{16b7d}', '\u{16b8f}'),
        ('\u{16e40}', '\u{16e7f}'),
        ('\u{16f00}', '\u{16f4a}'),
        ('\u{16f50}', '\u{16f50}'),
        ('\u{16f93}', '\u{16f9f}'),
        ('\u{16fe0}', '\u{16fe1}'),
        ('\u{16fe3}', '\u{16fe3}'),
        ('\u{17000}', '\u{187f7}'),
        ('\u{18800}', '\u{18cd5}'),
        ('\u{18d00}', '\u{18d08}'),
        ('\u{1b000}', '\u{1b11e}'),
        ('\u{1b150}', '\u{1b152}'),
        ('\u{1b164}', '\u{1b167}'),
        ('\u{1b170}', '\u{1b2fb}'),
        ('\u{1bc00}', '\u{1bc6a}'),
        ('\u{1bc70}', '\u{1bc7c}'),
        ('\u{1bc80}', '\u{1bc88}'),
        ('\u{1bc90}', '\u{1bc99}'),
        ('\u{1d400}', '\u{1d454}'),
        ('\u{1d456}', '\u{1d49c}'),
        ('\u{1d49e}', '\u{1d49f}'),
        ('\u{1d4a2}', '\u{1d4a2}'),
        ('\u{1d4a5}', '\u{1d4a6}'),
        ('\u{1d4a9}', '\u{1d4ac}'),
        ('\u{1d4ae}', '\u{1d4b9}'),
        ('\u{1d4bb}', '\u{1d4bb}'),
        ('\u{1d4bd}', '\u{1d4c3}'),
        ('\u{1d4c5}', '\u{1d505}'),
        ('\u{1d507}', '\u{1d50a}'),
        ('\u{1d50d}', '\u{1d514}'),
        ('\u{1d516}', '\u{1d51c}'),
        ('\u{1d51e}', '\u{1d539}'),
        ('\u{1d53b}', '\u{1d53e}'),
        ('\u{1d540}', '\u{1d544}'),
        ('\u{1d546}', '\u{1d546}'),
        ('\u{1d54a}', '\u{1d550}'),
        ('\u{1d552}', '\u{1d6a5}'),
        ('\u{1d6a8}', '\u{1d6c0}'),
        ('\u{1d6c2}', '\u{1d6da}'),
        ('\u{1d6dc}', '\u{1d6fa}'),
        ('\u{1d6fc}', '\u{1d714}'),
        ('\u{1d716}', '\u{1d734}'),
        ('\u{1d736}', '\u{1d74e}'),
        ('\u{1d750}', '\u{1d76e}'),
        ('\u{1d770}', '\u{1d788}'),
        ('\u{1d78a}', '\u{1d7a8}'),
        ('\u{1d7aa}', '\u{1d7c2}'),
        ('\u{1d7c4}', '\u{1d7cb}'),
        ('\u{1e100}', '\u{1e12c}'),
        ('\u{1e137}', '\u{1e13d}'),
        ('\u{1e14e}', '\u{1e14e}'),
        ('\u{1e2c0}', '\u{1e2eb}'),
        ('\u{1e800}', '\u{1e8c4}'),
        ('\u{1e900}', '\u{1e943}'),
        ('\u{1e94b}', '\u{1e94b}'),
        ('\u{1ee00}', '\u{1ee03}'),
        ('\u{1ee05}', '\u{1ee1f}'),
        ('\u{1ee21}', '\u{1ee22}'),
        ('\u{1ee24}', '\u{1ee24}'),
        ('\u{1ee27}', '\u{1ee27}'),
        ('\u{1ee29}', '\u{1ee32}'),
        ('\u{1ee34}', '\u{1ee37}'),
        ('\u{1ee39}', '\u{1ee39}'),
        ('\u{1ee3b}', '\u{1ee3b}'),
        ('\u{1ee42}', '\u{1ee42}'),
        ('\u{1ee47}', '\u{1ee47}'),
        ('\u{1ee49}', '\u{1ee49}'),
        ('\u{1ee4b}', '\u{1ee4b}'),
        ('\u{1ee4d}', '\u{1ee4f}'),
        ('\u{1ee51}', '\u{1ee52}'),
        ('\u{1ee54}', '\u{1ee54}'),
        ('\u{1ee57}', '\u{1ee57}'),
        ('\u{1ee59}', '\u{1ee59}'),
        ('\u{1ee5b}', '\u{1ee5b}'),
        ('\u{1ee5d}', '\u{1ee5d}'),
        ('\u{1ee5f}', '\u{1ee5f}'),
        ('\u{1ee61}', '\u{1ee62}'),
        ('\u{1ee64}', '\u{1ee64}'),
        ('\u{1ee67}', '\u{1ee6a}'),
        ('\u{1ee6c}', '\u{1ee72}'),
        ('\u{1ee74}', '\u{1ee77}'),
        ('\u{1ee79}', '\u{1ee7c}'),
        ('\u{1ee7e}', '\u{1ee7e}'),
        ('\u{1ee80}', '\u{1ee89}'),
        ('\u{1ee8b}', '\u{1ee9b}'),
        ('\u{1eea1}', '\u{1eea3}'),
        ('\u{1eea5}', '\u{1eea9}'),
        ('\u{1eeab}', '\u{1eebb}'),
        ('\u{20000}', '\u{2a6dd}'),
        ('\u{2a700}', '\u{2b734}'),
        ('\u{2b740}', '\u{2b81d}'),
        ('\u{2b820}', '\u{2cea1}'),
        ('\u{2ceb0}', '\u{2ebe0}'),
        ('\u{2f800}', '\u{2fa1d}'),
        ('\u{30000}', '\u{3134a}'),
    ];

    pub fn XID_Start(c: char) -> bool {
        super::bsearch_range_table(c, XID_Start_table)
    }
}
